Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Programmable logic array</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Programmable_logic_array"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Programmable_logic_array rootpage-Programmable_logic_array skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Programmable logic array</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">Not to be confused with <a href="Programmable_Array_Logic" title="Programmable Array Logic">Programmable Array Logic</a>.</div>

<p>A <b> programmable logic array</b> (<b>PLA</b>) is a kind of <a href="Programmable_logic_device" title="Programmable logic device">programmable logic device</a> used to implement <a href="Combinational_logic" title="Combinational logic">combinational logic</a> <a href="Electrical_network" title="Electrical network">circuits</a>. The PLA has a set of programmable <a href="AND_gate" title="AND gate">AND gate</a> planes, which link to a set of programmable <a href="OR_gate" title="OR gate">OR gate</a> planes, which can then be conditionally complemented to produce an output. It has 2<sup>N</sup> AND gates for N input variables, and for M outputs from the PLA, there should be M OR gates, each with programmable inputs from all of the AND gates. This layout allows for many logic functions to be synthesized in the sum of products <a href="Canonical_normal_form" title="Canonical normal form">canonical forms</a>.
</p><p>PLAs differ from <a href="Programmable_Array_Logic" title="Programmable Array Logic">programmable array logic</a> devices (<a href="Programmable_Array_Logic" title="Programmable Array Logic">PALs</a> and <a href="Generic_Array_Logic" title="Generic Array Logic">GALs</a>) in that both the AND and OR gate planes are programmable. PAL has programmable AND gates but fixed OR gates
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<p>In 1970, <a href="Texas_Instruments" title="Texas Instruments">Texas Instruments</a> developed a <a href="Photomask" title="Photomask">mask</a>-programmable IC based on the <a href="IBM" title="IBM">IBM</a> read-only <a href="Content-addressable_memory" title="Content-addressable memory">associative memory</a> or ROAM. This device, the TMS2000, was programmed by altering the metal layer during the production of the IC. The TMS2000 had up to 17 inputs and 18 outputs with 8 <a href="JK_flip-flops" class="mw-redirect" title="JK flip-flops">JK flip-flops</a> for memory. TI coined the term <i>Programmable Logic Array</i> for this device.<sup id="cite_ref-TI_PLA_1970_1-0" class="reference"><a href="#cite_note-TI_PLA_1970-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Implementation_procedure">Implementation procedure</h2></div>
<ol><li>Preparation in SOP (<a href="Sum_of_products" class="mw-redirect" title="Sum of products">sum of products</a>) form.</li>
<li>Obtain the minimum SOP form to reduce the number of product terms to a minimum.</li>
<li>Decide the input connection of the AND matrix for generating the required product term.</li>
<li>Then decide the input connections of the OR matrix to generate the sum terms.</li>
<li>Decide the connections of the inversion matrix.</li>
<li>Program the PLA.</li></ol>
<p>PLA block diagram:
</p>
<table class="wikitable">

<tbody><tr>
<th>1<sup>st</sup> block</th>
<th>2<sup>nd</sup> block</th>
<th>3<sup>rd</sup> block</th>
<th>4<sup>TH</sup> block</th>
<th>5<sup>th</sup> block
</th></tr>
<tr>
<td>Input buffer</td>
<td>AND matrix</td>
<td>OR matrix</td>
<td>Invert/non-invert matrix</td>
<td>Flip-flop output buffer
</td></tr></tbody></table>
<div class="mw-heading mw-heading2"><h2 id="Advantages_over_read-only_memory">Advantages over read-only memory</h2></div>
<p>The desired outputs for each combination of inputs <i>could</i> be programmed into a <a href="Read-only_memory" title="Read-only memory">read-only memory</a>, with the inputs being driven by the address bus and the outputs being read out as data. However, that would require a separate memory location for <i>every</i> possible combination of inputs, including combinations that are never supposed to occur, and also duplicating data for "don't care" conditions (for example, logic like "if input A is 1, then, as far as output X is concerned, we don't care what input B is": in a ROM this would have to be written out twice, once for each possible value of B, and as more "don't care" inputs are added, the duplication grows exponentially); therefore, a programmable logic array can often implement a piece of logic using fewer transistors than the equivalent in read-only memory. This is particularly valuable when it is part of a processing chip where transistors are scarce (for example, the original <a href="MOS_Technology_6502" title="MOS Technology 6502">6502</a> chip contained a PLA to direct various operations of the processor<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>).
</p>
<div class="mw-heading mw-heading2"><h2 id="Applications">Applications</h2></div>
<p>One application of a PLA is to implement the control over a <a href="Datapath" title="Datapath">datapath</a>. It defines various states in an instruction set, and produces the next state (by conditional branching). [e.g. if the machine is in state 2, and will go to state 4 if the instruction contains an immediate field; then the PLA should define the actions of the control in state 2, will set the next state to be 4 if the instruction contains an immediate field, and will define the actions of the control in state 4]. Programmable logic arrays should correspond to a <a href="State_diagram" title="State diagram">state diagram</a> for the system.
</p><p>The earliest <a href="Commodore_64" title="Commodore 64">Commodore 64</a> home computers released in 1982 (into early 1983) initially used a programmed Signetics 82S100 PLA, but as the demand increased, MOS Technology / Commodore Semiconductor Group began producing a mask-programmed PLA, which bore part number 906114-01.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Field-programmable_gate_array" title="Field-programmable gate array">Field-programmable gate array</a></li>
<li><a href="Gate_array" title="Gate array">Gate array</a></li>
<li><a href="Programmable_Array_Logic" title="Programmable Array Logic">Programmable Array Logic</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-TI_PLA_1970-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-TI_PLA_1970_1-0">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFAndres1970" class="citation book cs1">Andres, Kent (October 1970). <i>A Texas Instruments Application Report: MOS programmable logic arrays</i>. Texas Instruments. Bulletin CA-158.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.pagetable.com/?p=39">How MOS 6502 Illegal Opcodes really work</a></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.arcadecomponents.com/catalog/item/3054735/2582640.htm">arcadecomponents.com - Commodore 906114-01 64 PLA IC</a></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20171214191144/www.cs.umd.edu/class/spring2003/cmsc311/Notes/Comb/pla.html">"Programmable Logic Array (PLA)"</a>. <i>cmsc311</i>. <a href="University_of_Maryland" class="mw-redirect" title="University of Maryland">University of Maryland</a>. 2003. Archived from <a rel="nofollow" class="external text" href="http://www.cs.umd.edu/class/spring2003/cmsc311/Notes/Comb/pla.html">the original</a> on 2017-12-14.</cite></li>
<li><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20130115113124/http://tams-www.informatik.uni-hamburg.de/applets/hades/webdemos/42-programmable/10-pla/pla.html">"PLA (programmable logic array)"</a>. <i>Java Applet</i>. <a href="University_of_Hamburg" title="University of Hamburg">University of Hamburg</a>. Archived from <a rel="nofollow" class="external text" href="http://tams-www.informatik.uni-hamburg.de/applets/hades/webdemos/42-programmable/10-pla/pla.html">the original</a> on 2013-01-15<span class="reference-accessdate">. Retrieved <span class="nowrap">2010-04-07</span></span>.</cite></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" ยท ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Programmable_logic116" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div id="Programmable_logic116" style="font-size:114%;margin:0 4em"><a href="Programmable_logic_device" title="Programmable logic device">Programmable logic</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Concepts</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Application-specific_integrated_circuit" title="Application-specific integrated circuit">ASIC</a></li>
<li><a href="System_on_a_chip" title="System on a chip">SoC</a></li>
<li><a href="Field-programmable_gate_array" title="Field-programmable gate array">FPGA</a>
<ul><li><a href="Logic_block" title="Logic block">Logic block</a></li></ul></li>
<li><a href="Complex_programmable_logic_device" title="Complex programmable logic device">CPLD</a></li>
<li><a href="Programmable_logic_device#EPLDs" title="Programmable logic device">EPLD</a></li>

<li><a href="Programmable_Array_Logic" title="Programmable Array Logic">PAL</a></li>
<li><a href="Generic_array_logic" class="mw-redirect" title="Generic array logic">GAL</a></li>
<li><a href="Cypress_PSoC" title="Cypress PSoC">PSoC</a></li>
<li><a href="Reconfigurable_computing" title="Reconfigurable computing">Reconfigurable computing</a>
<ul><li><a href="Xputer" title="Xputer">Xputer</a></li></ul></li>
<li><a href="Soft_microprocessor" title="Soft microprocessor">Soft microprocessor</a></li>
<li><a href="Circuit_underutilization" title="Circuit underutilization">Circuit underutilization</a></li>
<li><a href="High-level_synthesis" title="High-level synthesis">High-level synthesis</a></li>
<li><a href="Hardware_acceleration" title="Hardware acceleration">Hardware acceleration</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Hardware_description_language" title="Hardware description language">Languages</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Verilog" title="Verilog">Verilog</a>
<ul><li><a href="Verilog-A" title="Verilog-A">A</a></li>
<li><a href="Verilog-AMS" title="Verilog-AMS">AMS</a></li></ul></li>
<li><a href="VHDL" title="VHDL">VHDL</a>
<ul><li><a href="VHDL-AMS" title="VHDL-AMS">AMS</a></li>
<li><a href="VHDL-VITAL" class="mw-redirect" title="VHDL-VITAL">VITAL</a></li></ul></li>
<li><a href="SystemVerilog" title="SystemVerilog">SystemVerilog</a>
<ul><li><a href="SystemVerilog_DPI" title="SystemVerilog DPI">DPI</a></li></ul></li>
<li><a href="SystemC" title="SystemC">SystemC</a></li>
<li><a href="Altera_Hardware_Description_Language" title="Altera Hardware Description Language">AHDL</a></li>
<li><a href="Handel-C" title="Handel-C">Handel-C</a></li>
<li><a href="Lola_(computing)" title="Lola (computing)">Lola</a></li>
<li><a href="Property_Specification_Language" title="Property Specification Language">PSL</a></li>
<li><a href="Unified_Power_Format" title="Unified Power Format">UPF</a></li>
<li><a href="PALASM" title="PALASM">PALASM</a></li>
<li><a href="Advanced_Boolean_Expression_Language" title="Advanced Boolean Expression Language">ABEL</a></li>
<li><a href="Programmable_Array_Logic#CUPL" title="Programmable Array Logic">CUPL</a></li>
<li><a href="C_to_HDL" title="C to HDL">C to HDL</a></li>
<li><a href="Flow_to_HDL" title="Flow to HDL">Flow to HDL</a></li>
<li><a href="MyHDL" title="MyHDL">MyHDL</a></li>
<li><a href="ELLA_(programming_language)" title="ELLA (programming language)">ELLA</a></li>
<li><a href="Chisel_(programming_language)" title="Chisel (programming language)">Chisel</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Companies</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Accellera" title="Accellera">Accellera</a></li>
<li><a href="Achronix" title="Achronix">Achronix</a></li>
<li><a href="AMD" title="AMD">AMD</a></li>
<li><a href="Aldec" title="Aldec">Aldec</a></li>
<li><a href="Arm_Holdings" title="Arm Holdings">Arm</a></li>
<li><a href="Cadence_Design_Systems" title="Cadence Design Systems">Cadence</a></li>
<li><a href="Infineon_Technologies" title="Infineon Technologies">Infineon</a></li>
<li><a href="Intel" title="Intel">Intel</a></li>
<li><a href="Lattice_Semiconductor" title="Lattice Semiconductor">Lattice</a></li>
<li><a href="Microchip_Technology" title="Microchip Technology">Microchip Technology</a></li>
<li><a href="NXP_Semiconductors" title="NXP Semiconductors">NXP</a></li>
<li><a href="Siemens" title="Siemens">Siemens</a></li>
<li><a href="Synopsys" title="Synopsys">Synopsys</a></li>
<li><a href="Texas_Instruments" title="Texas Instruments">Texas Instruments</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Products</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Hardware</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="ICE_(FPGA)" title="ICE (FPGA)">iCE</a></li>
<li><a href="Stratix" title="Stratix">Stratix</a></li>
<li><a href="Virtex_(FPGA)" title="Virtex (FPGA)">Virtex</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Software</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Intel_Quartus_Prime" class="mw-redirect" title="Intel Quartus Prime">Intel Quartus Prime</a></li>
<li><a href="Xilinx_ISE" title="Xilinx ISE">Xilinx ISE</a></li>
<li><a href="Vivado" title="Vivado">Vivado</a></li>
<li><a href="ModelSim" title="ModelSim">ModelSim</a></li>
<li><a href="Verilog-to-Routing" title="Verilog-to-Routing">VTR</a></li>
<li><a href="List_of_HDL_simulators" title="List of HDL simulators">Simulators</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Intellectual_property" title="Intellectual property">Intellectual<br>property</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Proprietary_hardware" title="Proprietary hardware">Proprietary</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="ARC_(processor)" title="ARC (processor)">ARC</a></li>
<li><a href="ARM_Cortex-M" title="ARM Cortex-M">ARM Cortex-M</a></li>
<li><a href="LEON" title="LEON">LEON</a></li>
<li><a href="LatticeMico8" title="LatticeMico8">LatticeMico8</a></li>
<li><a href="MicroBlaze" title="MicroBlaze">MicroBlaze</a></li>
<li><a href="PicoBlaze" title="PicoBlaze">PicoBlaze</a></li>
<li><a href="Nios_embedded_processor" title="Nios embedded processor">Nios</a></li>
<li><a href="Nios_II" title="Nios II">Nios II</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Open-source_hardware" title="Open-source hardware">Open-source</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Java_Optimized_Processor" title="Java Optimized Processor">JOP</a></li>
<li><a href="LatticeMico32" title="LatticeMico32">LatticeMico32</a></li>
<li><a href="OpenCores" title="OpenCores">OpenCores</a></li>
<li><a href="OpenRISC" title="OpenRISC">OpenRISC</a>
<ul><li><a href="OpenRISC_1200" title="OpenRISC 1200">1200</a></li></ul></li>
<li><a href="Power_ISA" title="Power ISA">Power ISA</a>
<ul><li><a href="Libre-SOC" title="Libre-SOC">Libre-SOC</a></li>
<li><a href="OpenPOWER_Microwatt" title="OpenPOWER Microwatt">Microwatt</a></li></ul></li>
<li><a href="RISC-V" title="RISC-V">RISC-V</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr></tbody></table><div></div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox" aria-labelledby="Digital_electronics118" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Digital_electronics118" style="font-size:114%;margin:0 4em"><a href="Digital_electronics" title="Digital electronics">Digital electronics</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%;text-align:center;"><a href="Electronic_component" title="Electronic component">Components</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Transistor" title="Transistor">Transistor</a></li>
<li><a href="Resistor" title="Resistor">Resistor</a></li>
<li><a href="Inductor" title="Inductor">Inductor</a></li>
<li><a href="Capacitor" title="Capacitor">Capacitor</a></li>
<li><a href="Printed_electronics" title="Printed electronics">Printed electronics</a></li>
<li><a href="Printed_circuit_board" title="Printed circuit board">Printed circuit board</a></li>
<li><a href="Electronic_circuit" title="Electronic circuit">Electronic circuit</a></li>
<li><a href="Flip-flop_(electronics)" title="Flip-flop (electronics)">Flip-flop</a></li>
<li><a href="Memory_cell_(computing)" title="Memory cell (computing)">Memory cell</a></li>
<li><a href="Combinational_logic" title="Combinational logic">Combinational logic</a></li>
<li><a href="Sequential_logic" title="Sequential logic">Sequential logic</a></li>
<li><a href="Logic_gate" title="Logic gate">Logic gate</a></li>
<li><a href="Boolean_circuit" title="Boolean circuit">Boolean circuit</a></li>
<li><a href="Integrated_circuit" title="Integrated circuit">Integrated circuit</a> (IC)</li>
<li><a href="Hybrid_integrated_circuit" title="Hybrid integrated circuit">Hybrid integrated circuit</a> (HIC)</li>
<li><a href="Mixed-signal_integrated_circuit" title="Mixed-signal integrated circuit">Mixed-signal integrated circuit</a></li>
<li><a href="Three-dimensional_integrated_circuit" title="Three-dimensional integrated circuit">Three-dimensional integrated circuit</a> (3D IC)</li>
<li><a href="Emitter-coupled_logic" title="Emitter-coupled logic">Emitter-coupled logic</a> (ECL)</li>
<li><a href="Erasable_programmable_logic_device" class="mw-redirect" title="Erasable programmable logic device">Erasable programmable logic device</a> (EPLD)</li>
<li><a href="Macrocell_array" title="Macrocell array">Macrocell array</a></li>
<li> (PLA)</li>
<li><a href="Programmable_logic_device" title="Programmable logic device">Programmable logic device</a> (PLD)</li>
<li><a href="Programmable_Array_Logic" title="Programmable Array Logic">Programmable Array Logic</a> (PAL)</li>
<li><a href="Generic_Array_Logic" title="Generic Array Logic">Generic Array Logic</a> (GAL)</li>
<li><a href="Complex_programmable_logic_device" title="Complex programmable logic device">Complex programmable logic device</a> (CPLD)</li>
<li><a href="Field-programmable_gate_array" title="Field-programmable gate array">Field-programmable gate array</a> (FPGA)</li>
<li><a href="Field-programmable_object_array" title="Field-programmable object array">Field-programmable object array</a> (FPOA)</li>
<li><a href="Application-specific_integrated_circuit" title="Application-specific integrated circuit">Application-specific integrated circuit</a> (ASIC)</li>
<li><a href="Tensor_Processing_Unit" title="Tensor Processing Unit">Tensor Processing Unit</a> (TPU)</li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;text-align:center;">Theory</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Digital_signal" title="Digital signal">Digital signal</a></li>
<li><a href="Boolean_algebra" title="Boolean algebra">Boolean algebra</a></li>
<li><a href="Logic_synthesis" title="Logic synthesis">Logic synthesis</a></li>
<li><a href="Logic_in_computer_science" title="Logic in computer science">Logic in computer science</a></li>
<li><a href="Computer_architecture" title="Computer architecture">Computer architecture</a></li>
<li><a href="Digital_signal_(signal_processing)" title="Digital signal (signal processing)">Digital signal</a>
<ul><li><a href="Digital_signal_processing" title="Digital signal processing">Digital signal processing</a></li></ul></li>
<li><a href="Circuit_minimization_for_Boolean_functions" class="mw-redirect" title="Circuit minimization for Boolean functions">Circuit minimization</a></li>
<li><a href="Switching_circuit_theory" title="Switching circuit theory">Switching circuit theory</a></li>
<li><a href="Gate_equivalent" title="Gate equivalent">Gate equivalent</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;text-align:center;"><a href="Electronics_design" class="mw-redirect" title="Electronics design">Design</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Logic_synthesis" title="Logic synthesis">Logic synthesis</a></li>
<li><a href="Place_and_route" title="Place and route">Place and route</a>
<ul><li><a href="Placement_(electronic_design_automation)" title="Placement (electronic design automation)">Placement</a></li>
<li><a href="Routing_(electronic_design_automation)" title="Routing (electronic design automation)">Routing</a></li></ul></li>
<li><a href="Transaction-level_modeling" title="Transaction-level modeling">Transaction-level modeling</a></li>
<li><a href="Register-transfer_level" title="Register-transfer level">Register-transfer level</a>
<ul><li><a href="Hardware_description_language" title="Hardware description language">Hardware description language</a></li>
<li><a href="High-level_synthesis" title="High-level synthesis">High-level synthesis</a></li></ul></li>
<li><a href="Formal_equivalence_checking" title="Formal equivalence checking">Formal equivalence checking</a></li>
<li><a href="Synchronous_circuit" title="Synchronous circuit">Synchronous logic</a></li>
<li><a href="Asynchronous_circuit" title="Asynchronous circuit">Asynchronous logic</a></li>
<li><a href="Finite-state_machine" title="Finite-state machine">Finite-state machine</a>
<ul><li><a href="Hierarchical_state_machine" class="mw-redirect" title="Hierarchical state machine">Hierarchical state machine</a></li></ul></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;text-align:center;">Applications</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Computer_hardware" title="Computer hardware">Computer hardware</a>
<ul><li><a href="Hardware_acceleration" title="Hardware acceleration">Hardware acceleration</a></li></ul></li>
<li><a href="Digital_audio" title="Digital audio">Digital audio</a>
<ul><li><a href="Digital_radio" title="Digital radio">radio</a></li></ul></li>
<li><a href="Digital_photography" title="Digital photography">Digital photography</a></li>
<li><a href="Telephony#Digital_telephony" title="Telephony">Digital telephone</a></li>
<li><a href="Digital_video" title="Digital video">Digital video</a>
<ul><li><a href="Digital_cinematography" title="Digital cinematography">cinematography</a></li>
<li><a href="Digital_television" title="Digital television">television</a></li></ul></li>
<li><a href="Electronic_literature" title="Electronic literature">Electronic literature</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;text-align:center;">Design issues</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Metastability_(electronics)" title="Metastability (electronics)">Metastability</a></li>
<li><a href="Runt_pulse" title="Runt pulse">Runt pulse</a></li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox authority-control" aria-labelledby="Authority_control_databases_frameless&amp;#124;text-top&amp;#124;10px&amp;#124;alt=Edit_this_at_Wikidata&amp;#124;link=https&amp;#58;//www.wikidata.org/wiki/Q2112217#identifiers&amp;#124;class=noprint&amp;#124;Edit_this_at_Wikidata707" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Authority_control_databases_frameless&amp;#124;text-top&amp;#124;10px&amp;#124;alt=Edit_this_at_Wikidata&amp;#124;link=https&amp;#58;//www.wikidata.org/wiki/Q2112217#identifiers&amp;#124;class=noprint&amp;#124;Edit_this_at_Wikidata707" style="font-size:114%;margin:0 4em">Authority control databases </div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">National</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/4076369-9">Germany</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://catalogue.bnf.fr/ark:/12148/cb119665378">France</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://data.bnf.fr/ark:/12148/cb119665378">BnF data</a></span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://lux.collections.yale.edu/view/concept/40672177-5e29-4960-8e9e-6e9648e03cd6">Yale LUX</a></span></li></ul></div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-06-15" href="https://en.wikipedia.org/wiki/?title=Programmable_logic_array&amp;oldid=1295658170">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>